﻿'Imports System.Windows.Forms
Imports DAL
Imports Infragistics.Win.UltraWinGrid

Public Class ucBusinessUnits

    Private dbBusinessUnits As New PrestozEntities()
   

    ''' <summary>
    ''' Trả về toàn bộ record trong bảng RockwellAutomationBUs
    ''' </summary>
    Public Sub RetrieveListOfBusinessUnits()

        'FUNC: Kỹ thuật Sync giữa UltraGrid và DbContext

        'Liên kết DbContaxt với BindingSource
        bsBusinessUnits.DataSource = dbBusinessUnits.RockwellAutomationBUs.ToList()

        'Liên kết BindingSource với Grid
        grdBUs.DataSource = bsBusinessUnits

        'FUNC: Thay đổi Caption của UltraGrid
        grdBUs.DisplayLayout.Bands(0).Columns(0).Header.Caption = "Mã PF"
        grdBUs.DisplayLayout.Bands(0).Columns(1).Header.Caption = "SBU"
        grdBUs.DisplayLayout.Bands(0).Columns(2).Header.Caption = "Phân lớp"
        grdBUs.DisplayLayout.Bands(0).Columns(3).Header.Caption = "Lớp"
        grdBUs.DisplayLayout.Bands(0).Columns(4).Header.Caption = "Ghi chú"
        grdBUs.DisplayLayout.Bands(0).Columns(5).Header.Caption = "Ngày tạo"
        grdBUs.DisplayLayout.Bands(0).Columns(6).Header.Caption = "Cập nhật"

        'FUNC: Ẩn cột của UltraGrid
        'Ẩn 2 cột CreatedDate & LastUpdate
        'grdBUs.DisplayLayout.Bands(0).Columns(5).Hidden = True
        'grdBUs.DisplayLayout.Bands(0).Columns(6).Hidden = True

        'FUNC: Thiết lập Read-Only cho một cột của UltraGrid
        grdBUs.DisplayLayout.Bands(0).Columns(0).CellActivation = Activation.ActivateOnly

        'FUNC: Thiết lập Add-Row cho UltraGrid
        'grdBUs.DisplayLayout.Override.AllowAddNew = AllowAddNew.TemplateOnBottom

        'FUNC: Thiết lập BindingNavigator cho UltraGrid
        BindingNavigator.BindingSource = bsBusinessUnits

        'FUNC: Xác định số hàng có trong UltraGrid
        'grdBUs.Rows(Me.grdBUs.Rows.Count - 1).Cells("PF").Activation = 1

        
    End Sub


    ''' <summary>
    ''' Lưu các thay đổi ở BindingSource vào CSDL
    ''' </summary>
    Public Function SaveChanges() As Boolean

        Try
            dbBusinessUnits.SaveChanges()
            Return True
        Catch ex As Exception
            MsgBox(ex.Message)

            Return False
        End Try
    End Function


    ''' <summary>
    ''' EVENT - btnAddNew_Click : Thêm một phân lớp mới
    ''' </summary>
    Private Sub btnAddNew_Click(sender As Object, e As EventArgs) Handles btnAddNew.Click
        Dim row As UltraGridRow = grdBUs.DisplayLayout.Bands(0).AddNew()
        grdBUs.DisplayLayout.Bands(0).Columns(0).CellActivation = Activation.AllowEdit
        row.Cells(5).Value = DateTime.Now
        row.Cells(6).Value = DateTime.Now
    End Sub


    ''' <summary>
    ''' EVENT - grdBUs_AfterExitEditMode : Thiết lập Read-Only cho cột PF của UltraGrid
    ''' </summary>
    Private Sub grdBUs_AfterExitEditMode(sender As Object, e As EventArgs) Handles grdBUs.AfterExitEditMode

        'FUNC: Kỹ xảo tái thiết lập Read-Only cho một cột của UltraGrid
        grdBUs.DisplayLayout.Bands(0).Columns(0).CellActivation = Activation.ActivateOnly


    End Sub


End Class
